﻿using Manon.Admin.Web.ApplicationCore.Dtos.User;
using Manon.Core.IOC;
using Manon.Core.Commons;
using Manon.Repository.Collections;
using System.Threading.Tasks;

namespace Manon.Admin.Web.ApplicationCore.Interfaces
{
    public interface IUserService : ISingletonDependency
    {
        /// <summary>
        /// 登录验证
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<Result<UserOutput>> ValidateUser(UserLoginInput Input);

        /// <summary>
        /// 获取用户分页列表
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<IPagedList<UserOutput>> GetUserPageList(GetUserPageListInput Input);


        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<UserOutput> GetUserById(int UserId);


        Task<Result> SaveUser(SaveUserInput Input);


        /// <summary>
        /// 设置用户是否可用
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<Result> SetEnabled(SetUserEnabledInput Input);

        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
       Task<Result> ModifyPassword(ModifyPasswordInput Input);
    }
}
